package fr.babos.touch.events 
{
	import flash.events.Event;
	import flash.geom.Point;
	
	/**
	 * @author ZoulouX
	 */
	public class GestureTouchTransformEvent extends Event 
	{
		/**
		 * Début d'un pinch
		 */
		public static const PINCH_START				:String 		= "gestureTouchPinchStart";
		
		/**
		 * Pinch en cours
		 */
		public static const PINCHING				:String 		= "gestureTouchPinching";
		
		/**
		 * Fin du pinch
		 */
		public static const PINCH_END				:String 		= "gestureTouchPinchEnd";
		
		
		/**
		 * Le premier point au début du pinch
		 */
		public var firstPointStart					:Point;
		
		/**
		 * Le second point au début du pinch
		 */
		public var secondPointStart					:Point;
		
		/**
		 * Le premier point
		 */
		public var firstPoint						:Point;
		
		/**
		 * Le second point
		 */
		public var secondPoint						:Point;
		
		/**
		 * Le centre entre les 2 points
		 */
		public var centerPoint						:Point;
		
		/**
		 * Le déplacement en x du premier point
		 */
		public var firstXDelta						:Number			= 0;
		
		/**
		 * Le déplacement en y du premier point
		 */
		public var firstYDelta						:Number			= 0;
		
		/**
		 * Le déplacement en x du second point
		 */
		public var secondXDelta						:Number			= 0;
		
		/**
		 * Le déplacement en y du second point
		 */
		public var secondYDelta						:Number			= 0;
		
		/**
		 * Delta de la rotation (depuis le dernier event dispatché)
		 */
		public var rotationDelta					:Number			= 0;
		
		/**
		 * Delta du scale (par rapport à 1, depuis le dernier event dispatché)
		 */
		public var scaleDelta						:Number			= 1;
		
		
		/**
		 * Le constructeur
		 * @param	type
		 * @param	bubbles
		 * @param	cancelable
		 */
		public function GestureTouchTransformEvent (type:String, bubbles:Boolean = false, cancelable:Boolean = false)
		{
			super(type, bubbles, cancelable);
		}
		
		public override function clone ():Event
		{ 
			return new GestureTouchEvent(type, bubbles, cancelable);
		}
		public override function toString ():String
		{ 
			return formatToString("GestureTouchTransformEvent", "type", "bubbles", "cancelable", "eventPhase"); 
		}
	}
}